-- *****************************************************************
-- CISCO-PPPOE-MIB.my: PPPoE Sessions Management MIB file
--
-- February 2001, Ashoka K
--
-- Copyright (c) 2001, 2005 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-PPPOE-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Gauge32, Counter32,
        Unsigned32
                FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        ciscoMgmt
                FROM CISCO-SMI
        TruthValue
                FROM SNMPv2-TC
        ifIndex
                FROM IF-MIB
        atmVclVpi,
        atmVclVci,
        atmVclEntry
                FROM ATM-MIB;

ciscoPppoeMIB MODULE-IDENTITY
        LAST-UPDATED        "200512210000Z"
        ORGANIZATION        "Cisco Systems, Inc."
        CONTACT-INFO
                "            Cisco Systems
                             Customer Service

                 Postal:     170 W Tasman Drive
                             San Jose, CA 95134
                             USA

                    Tel:     +1 800 553-NETS

                 E-mail:     cs-atm@cisco.com"
        DESCRIPTION
                "Cisco PPPoE sessions management MIB Module."
-- REFERENCE
--   "RFC 2516 - A Method for Transmitting PPP Over Ethernet (PPPOE)"
        REVISION             "200512210000Z"
        DESCRIPTION
                "Updated the imports such that Unsigned32 is imported from
                SNMPv2-SMI instead of CISCO-TC."
                
        REVISION             "200102200000Z"
        DESCRIPTION
                "Initial version of this MIB module."

        ::= { ciscoMgmt 194}


ciscoPppoeMIBObjects OBJECT IDENTIFIER::={ ciscoPppoeMIB 1 }
cPppoeSystemSessionInfo  OBJECT IDENTIFIER ::=
      { ciscoPppoeMIBObjects 1 }
cPppoeVcCfgInfo OBJECT IDENTIFIER ::=
      { ciscoPppoeMIBObjects 2 }
cPppoeVcSessionsInfo   OBJECT IDENTIFIER ::=
      { ciscoPppoeMIBObjects 3 }


cPppoeSystemCurrSessions OBJECT-TYPE
        SYNTAX     Gauge32
        UNITS      "sessions"
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The current number of active PPPoE sessions within
                 this system."
        ::= { cPppoeSystemSessionInfo 1 }

cPppoeSystemHighWaterSessions OBJECT-TYPE
        SYNTAX     Gauge32
        UNITS      "sessions"
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The high water mark of the established PPPoE
                 sessions since the system was initialized."
        ::= { cPppoeSystemSessionInfo 2 }

cPppoeSystemMaxAllowedSessions OBJECT-TYPE
        SYNTAX     Unsigned32
        UNITS      "sessions"
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "Maximum number of allowed PPPoE sessions within
                 the system."
        ::= { cPppoeSystemSessionInfo 3 }

cPppoeSystemThresholdSessions OBJECT-TYPE
        SYNTAX     Unsigned32
        UNITS      "sessions"
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "Threshold value of the established PPPoE sessions
                 within the system. Default value is equal to
                 cPppoeSystemMaxSessionsConfigurable"
        ::= { cPppoeSystemSessionInfo 4 }

cPppoeSystemExceededSessionErrors OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The accumulated number of errors for
                 establishing PPPoE session in the system due
                 to the cPppoeSystemCurrSessions value exceeds
                 the cPppoeSystemMaxAllowedSessions value."
        ::= { cPppoeSystemSessionInfo 5 }

cPppoeVcCfgTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF CPppoeVcCfgEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "The table contains the PPPoE protocol related
                 configuration for the VCLs(ATM Interface
                 Virtual Channel Link)."
        ::= { cPppoeVcCfgInfo 1 }

cPppoeVcCfgEntry OBJECT-TYPE
         SYNTAX     CPppoeVcCfgEntry
         MAX-ACCESS not-accessible
         STATUS     current
         DESCRIPTION
                "An entry containing additional PPPoE protocol
                 configuration related management information
                 applicable to a particular VCL."
         AUGMENTS { atmVclEntry }
         ::= { cPppoeVcCfgTable 1 }

CPppoeVcCfgEntry ::= SEQUENCE            {
         cPppoeVcEnable                  TruthValue
         }

cPppoeVcEnable OBJECT-TYPE
         SYNTAX     TruthValue
         MAX-ACCESS read-write
         STATUS     current
         DESCRIPTION
                 "This object specifies whether the PPPoE protocol
                  should be enabled for this VCL. If the value of
                  this object is `false`, PPPoE protocol is
                  disabled; otherwise the PPPoE protocol is
                  enabled."
         DEFVAL { false }
         ::= { cPppoeVcCfgEntry 1 }

cPppoeVcSessionsTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF CPppoeVcSessionsEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Table of configuration and statistics about the
                 number of PPPoE sessions on a list of VCLs(ATM
                 Interface Virtual Channel Link)."
        ::= { cPppoeVcSessionsInfo 1 }

cPppoeVcSessionsEntry OBJECT-TYPE
         SYNTAX     CPppoeVcSessionsEntry
         MAX-ACCESS not-accessible
         STATUS     current
         DESCRIPTION
                "An entry in the table containing PPPoE session
                 related information on a VCL. The entry of this
                 table is created when the value of cPppoeVcEnable
                 object is set to `true` for the entry associated
                 VCL. The entry of this table is deleted when the
                 of cPppoeVcEnable object set to `false` or the
                 the entry associated VCL is deleted from
                 atmVclTable."
         INDEX { ifIndex, atmVclVpi, atmVclVci }
         ::= { cPppoeVcSessionsTable 1 }

CPppoeVcSessionsEntry ::= SEQUENCE            {
         cPppoeVcCurrSessions            Gauge32,
         cPppoeVcHighWaterSessions       Gauge32,
         cPppoeVcMaxAllowedSessions      Unsigned32,
         cPppoeVcThresholdSessions       Unsigned32,
         cPppoeVcExceededSessionErrors   Counter32
         }

cPppoeVcCurrSessions OBJECT-TYPE
         SYNTAX     Gauge32
         UNITS      "sessions"
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
                 "The current number of active PPPoE sessions on
                  the VCL."
         ::= { cPppoeVcSessionsEntry 1 }

cPppoeVcHighWaterSessions OBJECT-TYPE
         SYNTAX     Gauge32
         UNITS      "sessions"
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
                 "The high water mark of the established PPPoE
                  sessions on the VCL."
         ::= { cPppoeVcSessionsEntry 2 }

cPppoeVcMaxAllowedSessions OBJECT-TYPE
         SYNTAX     Unsigned32
         UNITS      "sessions"
         MAX-ACCESS read-write
         STATUS     current
         DESCRIPTION
                 "The maximum number of allowed PPPoE sessions on
                  the VCL."
         ::= { cPppoeVcSessionsEntry 3 }

cPppoeVcThresholdSessions OBJECT-TYPE
         SYNTAX     Unsigned32
         UNITS      "sessions"
         MAX-ACCESS read-write
         STATUS     current
         DESCRIPTION
                 "The Threshold value of the established PPPoE
                  sessions on the VCL. Default value is equal to
                  cPppoeVcMaxAllowedSessions."
         ::= { cPppoeVcSessionsEntry 4 }

cPppoeVcExceededSessionErrors OBJECT-TYPE
         SYNTAX     Counter32
         UNITS      "attempts"
         MAX-ACCESS read-only
         STATUS     current
         DESCRIPTION
                 "The accumulated number of errors for
                  establishing PPPoE session in the VC
                  due to the cPppoeVcCurrSessions value
                  exceeds the cPppoeVcMaxAllowedSessions
                  value."
         ::= { cPppoeVcSessionsEntry 5 }

-- Notifications

ciscoPppoeMIBNotificationPrefix OBJECT IDENTIFIER ::= {ciscoPppoeMIB 2}
ciscoPppoeMIBNotification OBJECT IDENTIFIER ::=
     { ciscoPppoeMIBNotificationPrefix 0}

cPppoeSystemSessionThresholdTrap  NOTIFICATION-TYPE
       OBJECTS { cPppoeSystemCurrSessions,
                 cPppoeSystemMaxAllowedSessions,
                 cPppoeSystemThresholdSessions }
       STATUS  current
       DESCRIPTION
               "A notification indicating that number of active
                sessions on the system exceeded system sessions
                threshold value. System sessions threshold value
                is indicated by cPppoeSystemThresholdSessions.

                An  agent  must  not  generate  more  than  one
                cPppoeSessionThresholdTrap `trap-event` in a
                N second period,  where a  `trap-event` is  the
                transmission of a single trap  PDU to a  list of
                trap destinations. If additional `the number of
                PPPoE  sessions  exceeds  threshold`  condition
                occur within the N  second `throttling` period,
                then these  trap-events should be suppressed by
                the agent. An NMS should periodically check the
                value of  cPppoeCurrSessions to  detect  any
                missed cPppoeVcSessionThresholdTrap trap-events,
                e.g. due to throttling or transmission loss.
                Where N is the `throttling` period of trap-event.
                Default value of the N is equal to 30 seconds"

        ::= { ciscoPppoeMIBNotification 1 }

cPppoeVcSessionThresholdTrap  NOTIFICATION-TYPE
        OBJECTS { cPppoeVcCurrSessions,
                  cPppoeVcMaxAllowedSessions,
                  cPppoeVcThresholdSessions }
         STATUS current
         DESCRIPTION
                 "A notification indicating that number of active
                  sessions on the  VC  exceeded vc sessions
                  threshold value. VC sessions threshold value is
                  indicated by cPppoeVcThresholdSessions.

                  An  agent  must  not  generate  more  than  one
                  cPppoeVcSessionThresholdTrap `trap-event` in a
                  N second period,  where a  `trap-event` is  the
                  transmission of a single trap  PDU to a  list of
                  trap destinations. If additional `the number of
                  PPPoE  sessions  exceeds  threshold`  condition
                  occur within the N  second `throttling` period,
                  then these  trap-events should be suppressed by
                  the agent. An NMS should periodically check the
                  value of  cPppoeVcCurrSessions to  detect  any
                  missed cPppoeVcSessionThresholdTrap trap-events,
                  e.g. due to throttling or transmission loss.
                  Where N is the `throttling` period of trap-event.
                  Default value of the N is equal to 30 seconds."

         ::= { ciscoPppoeMIBNotification  2 }

-- Conformance

ciscoPppoeMIBConformance OBJECT IDENTIFIER ::= { ciscoPppoeMIB 3 }
ciscoPppoeMIBCompliances OBJECT IDENTIFIER ::=
     { ciscoPppoeMIBConformance 1 }
ciscoPppoeMIBGroups      OBJECT IDENTIFIER ::=
     { ciscoPppoeMIBConformance 2 }

-- Compliance

ciscoPppoeMIBBasicCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for entities which implement
                 the Cisco PPPoE MIB. "
        MODULE        -- this module
                MANDATORY-GROUPS {
                                   cPppoeSystemGroup,
                                   cPppoeVcCfgGroup,
                                   cPppoeVcSessionsGroup,
                                   cPppoeNotificationsGroup
                                 }
         ::= { ciscoPppoeMIBCompliances 1 }

--        UNITS of Conformance

cPppoeSystemGroup   OBJECT-GROUP
        OBJECTS { cPppoeSystemCurrSessions,
                  cPppoeSystemHighWaterSessions,
                  cPppoeSystemMaxAllowedSessions,
                  cPppoeSystemThresholdSessions,
                  cPppoeSystemExceededSessionErrors }
        STATUS  current
        DESCRIPTION
            "A collection of objects providing information about the
             PPPoE sessions on a system."
         ::= { ciscoPppoeMIBGroups 1 }

cPppoeVcCfgGroup   OBJECT-GROUP
        OBJECTS { cPppoeVcEnable }
        STATUS  current
        DESCRIPTION
            "A collection of objects specifying PPPoE protocol
             related configuration on the VCL."
         ::= { ciscoPppoeMIBGroups 2 }

cPppoeVcSessionsGroup   OBJECT-GROUP
        OBJECTS { cPppoeVcCurrSessions,
                  cPppoeVcHighWaterSessions,
                  cPppoeVcMaxAllowedSessions,
                  cPppoeVcThresholdSessions,
                  cPppoeVcExceededSessionErrors }
        STATUS  current
        DESCRIPTION
            "A collection of objects providing information about the
             number of sessions on the VCL."
         ::= { ciscoPppoeMIBGroups 3 }

cPppoeNotificationsGroup NOTIFICATION-GROUP
        NOTIFICATIONS { cPppoeSystemSessionThresholdTrap,
                        cPppoeVcSessionThresholdTrap }
        STATUS  current
        DESCRIPTION
            "The collection of notifications used to indicate
             high PPPoE session volume information(e.g, the
             number of current PPPoE sessions exceeds threshold
             setting for the system or a VCL)."
         ::= { ciscoPppoeMIBGroups 4 }

END